package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.system.domain.WcPatentApplication;
import com.ruoyi.system.domain.vo.business.*;
import com.ruoyi.system.dto.coopHan.PageCulvertNoticeDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 剧本备案申请Mapper接口
 *
 * @author ruoyi
 * @date 2024-02-28
 */
@Mapper
public interface WcPatentApplicationMapper extends BaseMapper<WcPatentApplication>
{
    /**
     * 查询剧本备案申请
     *
     * @param id 剧本备案申请主键
     * @return 剧本备案申请
     */
    public WcPatentApplication selectWcPatentApplicationById(Long id);

    /**
     * 查询剧本备案申请列表
     *
     * @param wcPatentApplication 剧本备案申请
     * @return 剧本备案申请集合
     */
    public List<WcPatentApplication> selectWcPatentApplicationList(WcPatentApplication wcPatentApplication);

    /**
     * 新增剧本备案申请
     *
     * @param wcPatentApplication 剧本备案申请
     * @return 结果
     */
    public int insertWcPatentApplication(WcPatentApplication wcPatentApplication);

    /**
     * 修改剧本备案申请
     *
     * @param wcPatentApplication 剧本备案申请
     * @return 结果
     */
    public int updateWcPatentApplication(WcPatentApplication wcPatentApplication);

    /**
     * 删除剧本备案申请
     *
     * @param id 剧本备案申请主键
     * @return 结果
     */
    public int deleteWcPatentApplicationById(Long id);

    /**
     * 批量删除剧本备案申请
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWcPatentApplicationByIds(String[] ids);

//    List<WcPatentApplicationSelectListVO> list(@Param("dto") WcPatentApplicationSelectListDto dto);

    WcPatentApplicationDetailVO selectWcPatentApplicationDetailVOById(Long id);

    Page<WcPatentApplicationSelectListVO> getList(@Param("page") Page<WcPatentApplicationSelectListVO> page, @Param("dto")WcPatentApplicationSelectListDto dto);


    Page<WcPatentApplicationSelectListVO> getPageNotice(@Param("dto") Page<WcPatentApplicationSelectListVO> page, @Param("dto") PageCulvertNoticeDto dto);

    /**
     * 电影剧本备案--查询剧本备案受理列表
     * @param page
     * @param dto
     */
    Page<WcPatentApplicationSelectListVO> getAcceptanceList(@Param("page") Page<WcPatentApplicationSelectListVO> page, @Param("dto") WcPatentApplicationSelectListDto dto, @Param("taskName") String taskName);

    /**
     * 电影剧本备案--查询剧本备案公示信息列表
     * @param page
     * @param dto
     * @return
     */
    Page<WcPatentApplicationPublicityInfoListVo> getPublicityInfoList(@Param("page") Page<WcPatentApplicationPublicityInfoListVo> page, @Param("dto") WcPatentApplicationPublicityInfoListDto dto);

    void saveRecommendation(@Param("saveVO") WcPatentApplicationRecommendationVO saveVO);

    List<WcPatentApplicationRecommendationVO> getRecommendationList(@Param("id") String id);
}
